package sucre

class RegistroNotasController {
    def loginService
    def beforeInterceptor = [action:this.&auth]
    def auth = {
        def result =loginService.validarAcceso(
            session["seguridad_usuario"],
            session["seguridad_funcionesHabilitadas"],
            controllerName,actionName,request.getRemoteAddr().toString())
        if(!result) {
            redirect(controller:"login",action:"auth",params:['acceso':false])
            return false
        }
    }

    def index = {}
    def create = {
        def docentes = "["
        Docente.list().each{docente ->
            docentes +=  '{value: "' + docente.cedula +'", '
            docentes +=  'label: "' + docente.cedula +'", '
            docentes +=  'desc: "' + docente.nombres + " " + docente.apellidos+ '"},'
        }
        docentes += "]"
        def query = {
            order("nombre", "asc")
        }
        def materiaList = Materia.createCriteria().list(params,query)
        
        [docentes:docentes,materiaList:materiaList]
    }
    def save = {
        def accion=false
        def docentes = "["
        Docente.list().each{docente ->
            docentes +=  '{value: "' + docente.cedula +'", '
            docentes +=  'label: "' + docente.cedula +'", '
            docentes +=  'desc: "' + docente.nombres + " " + docente.apellidos+ '"},'
        }
        docentes += "]"
        def listaErrores=[]
        params.inscripciones.split(",").each { id ->
            if (!id.trim().equals('')){
                def inscripcion =  Inscripcion.get(id)
                inscripcion.calificacion = Integer.parseInt(params.get(id.toString()))
                inscripcion.save()
                accion=true
            }
            
            
        }
        render busqueInscripcion.call(params.docente , params.materia, params.seccion, null, accion)
    }   
    
    def reder1 = { 
        println "params: " +  params
        render busqueInscripcion.call(params.docente, params.materia, params.seccion, params.lapsoAcademico, false )
    }
    
    def busqueInscripcion = { String newDocente, String newMateria, String newSeccion, String newLapsoAcademico , boolean accion ->
        def mensaje=""
         if(accion){
                mensaje="<span style='color#900000;font-size:13px; border:1px solid #c1c1c1;background:#f2f2f2'>Notas Actualizadas</span>"
                
            }
        def htmlInput = "<input type='hidden' name='inscripciones' id='inscripciones' value='" 
        def html = "</br></br><table width='620' align='center' style='border: 1px solid #CECECE; border-collapse: collapse;' cellpadding='0' cellspacing='0' > <tr align='left' style='font-weight:bold; background-color: #DCDCDC; color:#FFFFFF;'><td height='28' style='padding:5px;font-weight:bold;'>Cédula</td><td height='28' style='padding:5px;font-weight:bold;'>Nombre</td><td height='28' style='padding:5px;font-weight:bold;'>Materia</td><td height='28' style='padding:5px; font-weight:bold;'>Sección</td><td height='28' style='padding:5px; font-weight:bold;'>Lapso Academico</td><td height='28' style='padding:5px;font-weight:bold;'>Calificación</td></tr>"
        def docente = Docente.findByCedula(newDocente)
        if (docente == null) { 
            html ="Usted no está asociado a esta unidad curricular."
        } else {
            def query = {
                eq('docente',docente)
                if (newMateria != null && !newMateria.equals('')){
                    def materia = Materia.get(newMateria)
                    eq('materia',materia)       
                }
                if (newSeccion != null && !newSeccion.equals('')){
                    def seccion = Seccion.get(newSeccion)
                    eq('seccion',seccion)       
                }
                if (newLapsoAcademico != null && !newLapsoAcademico.equals('')){
                    eq('lapsoAcademico',newLapsoAcademico)
                }
            }
            def inscripcionList = Inscripcion.createCriteria().list(params,query)
            inscripcionList.each{ inscripcion ->
                htmlInput += inscripcion.id + ","
                html += "<tr style=' backgroung-color=#CECECE'>"
                html += "<td style='border: 1px solid #CECECE; padding:5px;background-color: #f2f3f3'>"  + inscripcion.alumno.cedula + "</td>" 
                html += "<td style='border: 1px solid #CECECE; padding:5px; background-color: #f2f2f2'; >"  + inscripcion.alumno.nombres + "</td>" 
                html += "<td style='border: 1px solid #CECECE; padding:5px; background-color: #f2f2f2'>"  + inscripcion.materia.nombre + "</td>" 
                html += "<td style='border: 1px solid #CECECE; padding:5px; background-color: #f2f2f2'>"  + inscripcion.seccion.descripcion + "</td>" 
                html += "<td style='border: 1px solid #CECECE; padding:5px; background-color: #f2f2f2'>"  + inscripcion.lapsoAcademico + "</td>" 
                html += "<td style='border: 1px solid #CECECE; padding:5px; background-color: #f2f2f2'><input onkeypress='return acceptInput(event,0,this,false)' maxlength='2' name='"+inscripcion.id+"' width='30px'value='"+inscripcion.calificacion+"'/></td>" 
                html += "</tr>"
            }
            if (inscripcionList.size() <= 0) {
                html = "Usted no está asociado a esta unidad curricular."
            }
            html += "</table>" 
        }
        html += "</table>" 
        htmlInput += "' /> <br/>"
        return  htmlInput + mensaje + html
    }
    def index_docente = {}
    def create_docente = {
        def usuario = Usuario.findByLogin(session["seguridad_usuario"])
        def docentes=Docente.findByCorreo(usuario.email)
        def query = {
            order("nombre", "asc")
        }
        def materiaList = Materia.createCriteria().list(params,query)
        
        [docentes:docentes,materiaList:materiaList]
    }
}
